SLEEP : Mise en veille du microcontrôleur ( Power Down mode )
0 -> PD
1 -> TO
00 -> WDT
00 -> Prédiviseur de WDT
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
PD=0 et TO=1
Syntaxe : SLEEP
La consommation de courant est minimale.
SUBLW : (Substract Literal from W)
Soustraction entre une valeur et le registre W
v - ( W ) -> ( W )
( la série PIC 16C5x ne comprend pas cette instruction)
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
C si retenue ( C=1 )
DC si la somme des quatre bits de poids faible est > 15 ( DC=1 )
Z si la somme est nulle ( Z=1 )
Syntaxe : SUBLW 0x01 éxécute la soustraction 01 - contenu de W résultat dans W
( méthode du complément à 2 )
SUBWF : (Substract W from F)
Soustraire le contenu du registre W du contenu du registre f résultat dans d
( f ) - ( W ) -> ( d )
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z si résultat stocké dans le registre W ou f est nul ( Z=1 )
C = 1 si f > W ou f = W
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f
Exemple :
Dans cet exemple on charge une valeur dans le registre W puis on la soustraie avec le contenu d'un registre temporaire, le résultat est dirigé vers le registre temporaire..
( méthode du complément à 2 )
Reg_temp equ 0Ah OA correspond à l'adresse d' un registre temporaire
#define f 1 on affecte la valeur 1 à la variable f
Movlw 00001010b on charge 0Ah dans le registre W
Movwf Reg_temp on met W dans le registre temporaire
Movlw 00000001b on charge 01h dans le registre W
Subwf Reg_temp, f on soustraie avec W le registre temporaire= 00001001b
SWAPF : (SWAP nibbles in F)
Échange de quartets entre le registre ( f ) et ( d )
( f bit 0 à bit 3) -> ( d bit 4 à bit 7 )
( f bit 4 à bit 7) -> ( d bit 0 à bit 3 )
Nombre de cycle d'horloge : 1
Indicateurs positionnés : Aucun
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f